GDK_WINDOW_IMPL_GET_IFACE (private->impl)->input_shape_combine_region ((GdkWindow *)private, private->input_shape, 0, 0);
if (gdk_window_is_viewable (window))
- GDK_WINDOW_IMPL_GET_IFACE (private->impl)->show (window);
+ GDK_WINDOW_IMPL_GET_IFACE (private->impl)->show (window, FALSE);
return TRUE;
}
}
static void
-show_all_visible_impls (GdkWindowObject *private)
+show_all_visible_impls (GdkWindowObject *private, gboolean already_mapped)
{
GdkWindowObject *child;
GList *l;
{
child = l->data;
if (GDK_WINDOW_IS_MAPPED (child))
- show_all_visible_impls (child);
+ show_all_visible_impls (child, FALSE);
}
if (gdk_window_has_impl (private))
- GDK_WINDOW_IMPL_GET_IFACE (private->impl)->show ((GdkWindow *)private);
+ GDK_WINDOW_IMPL_GET_IFACE (private->impl)->show ((GdkWindow *)private, already_mapped);
}
static void
}
if (gdk_window_is_viewable (window))
- show_all_visible_impls (private);
+ show_all_visible_impls (private, was_mapped);
if (!was_mapped)
{
{
GTypeInterface g_iface;
- void (* show) (GdkWindow *window);
+ void (* show) (GdkWindow *window,
+ gboolean already_mapped);
void (* hide) (GdkWindow *window);
void (* withdraw) (GdkWindow *window);
void (* raise) (GdkWindow *window);
}
static void
-gdk_window_x11_show (GdkWindow *window)
+gdk_window_x11_show (GdkWindow *window, gboolean already_mapped)
{
GdkWindowObject *private = (GdkWindowObject*) window;
GdkDisplay *display;
Display *xdisplay = GDK_WINDOW_XDISPLAY (window);
Window xwindow = GDK_WINDOW_XID (window);
gboolean unset_bg;
-
- set_initial_hints (window);
+
+ if (!already_mapped)
+ set_initial_hints (window);
if (WINDOW_IS_TOPLEVEL (window))
{